package com.handyshop.mall.user.service;

import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.handyshop.mall.dubbo.user.entity.SysMenu;

import java.util.List;

/**
 * @author hs
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 根据角色id查询
     *
     * @param roleId 角色id
     * @return 菜单
     */
    List<SysMenu> findMenuByRoleId(Long roleId);

    /**
     * 根据角色ids查询
     *
     * @param roleIds 角色ids
     * @return 菜单
     */
    List<SysMenu> findMenuByRoleIds(List<Long> roleIds);

    /**
     * 根据id删除-同时删除关联信息
     *
     * @param id 主键
     * @return true成功
     */
    boolean delById(Long id);

    /**
     * 获取菜单树
     *
     * @param parentId 父级id
     * @return 树
     */
    List<Tree<Long>> getMenuTree(Long parentId);

    /**
     * 获取菜单树
     *
     * @param menus 菜单id
     * @return 树
     */
    List<Tree<Long>> getMenuTree(List<Long> menus);

    /**
     * 获取用户的菜单树
     *
     * @param roleId 角色id
     * @return 树
     */
    List<Tree<Long>> getUserMenuTree(Long roleId);

    /**
     * 获取用户的菜单id
     *
     * @param roleId 角色id
     * @return 菜单id
     */
    List<Long> getUserMenuIds(Long roleId);

}
